#include <cstdio>
#include <algorithm>
#include <cstring>
using namespace std;
const int N = 105, M = 1005;
int n, m;
int v[N], f[M];
int main() {
	scanf ("%d%d", &n, &m);
	for (int i = 1; i <= n; i++) {
		scanf ("%d", &v[i]);
	}
	memset (f, 0x7f, sizeof(f));
	f[0] = 1;
	for (int i = 1; i <= n; i++) {
		for (int j = v[i]; j <= m; j++) {
			f[j] = min (f[j], f[j - v[i]] + 1);
		}
	}
	if (m <= v[1]) {
		printf ("Impossible");
		return 0;
	}
	if (f[m] == 0) {
		printf ("Impossible");
	} else {
		printf ("%d\n", f[m] - 1);
	}
	return 0;
}